package com.smartrobot.smartrobot.logToSdCard;

import android.os.Environment;
import android.util.Log;

import org.apache.log4j.Level;
import org.apache.log4j.Logger;

import java.io.File;

import de.mindpipe.android.logging.log4j.LogConfigurator;

/**
 * Created by Administrator on 2014/12/22.
 */
public class LogToSd {





    public LogToSd(){
        configure();
    }

    //=============================================
    //  Log4j for android 的配置初始化
    //  建议放在Application的onCreate方法里
    //  另外要判断手机是否有SD卡
    //=============================================

    private static Logger mLogger = null;
    private static String log_name = "SmartRobot/SmartRobot.log";
    private static boolean    canLog = true;

    public static void configure() {
        try{
            if(mLogger==null){
                final LogConfigurator logConfigurator = new LogConfigurator();
                //===============================================================
                //如果想创建的日记文件在多级目录下，要自己先创建目录，Log4j只能创建日记文件，不能创建多级目录
                //===============================================================

                logConfigurator.setFileName(Environment.getExternalStorageDirectory() + File.separator + log_name);
                logConfigurator.setRootLevel(Level.ALL);  //设置输出类型
                logConfigurator.setLevel("org.apache", Level.ALL);
                logConfigurator.setFilePattern("%d %-5p [%c{2}]-[%L] %m%n");
                logConfigurator.setMaxFileSize(1024 * 1024 * 5);
                logConfigurator.setImmediateFlush(true);
                logConfigurator.configure();

                mLogger = Logger.getLogger("log for smartRobot");
            }



        }catch (Exception e){
            Log.e("---------输出日志到sdcard------------------",e.getMessage());
            canLog = false;
        }


    }

    public static void log_init(){
        configure();
    }

    public static void debug(String str) {
        if(canLog)
            mLogger.debug(str);
    }

    public static void info(String str){
        if(canLog)
            mLogger.info(str);
    }
    public static void error(String str){
        if(canLog)
            mLogger.error(str);
    }

}
